//package com.miniprogram.generator.generatornew;
//
//import com.baomidou.mybatisplus.annotation.DbType;
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.FastAutoGenerator;
//import com.baomidou.mybatisplus.generator.config.*;
//import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
//
//import java.util.*;
//
//public class CodeGeneratorNew {
//    // 工程地址
//    private static String projectPath = System.getProperty("user.dir").replace("\\", "/");
//
//    private static String createTableName = "";
//
//    private static String projectName = "/miniprogram-cloud-";
//
//    private static String packagePath = "/src/main/java/com/miniprogram/";
//
//    private static final List<String> createTableNames = Arrays.asList("customer_user","customer_role");
//
//    // 数据库地址
//    public static String DATA_SOURCE_RUL = "jdbc:mysql://rm-m5e0503y2wul76t36to.mysql.rds.aliyuncs.com:3306/mywish?characterEncoding=utf-8&autoReconnect=true&useSSL=false";
//    // 数据库驱动
//    public static String DATA_DRIVER = "com.mysql.jdbc.Driver";
//    // 数据库账号
//    public static String DATA_USER = "root";
//    // 数据库密码
//    public static String DATA_PASSWORD = "Ilove=shaolin";
//    public static String DATA_SCHEMA = "mywish";
//    // 公用service类地址
//    public static String BASE_SERVICE = "com.miniprogram.common.service.BaseService";
//    // 公用serviceImpl类地址
//    public static String BASE_SERVICE_IMPL = "com.miniprogram.common.service.BaseServiceImpl";
//    // 公用entity
//    public static String BASE_ENTITY = "com.miniprogram.bean.po.generic.DataEntity";
//    // 数据库类型
//    public static DbType DATA_TYPE = DbType.MYSQL;
//
//    /**
//     * 数据源配置
//     */
//    private static final DataSourceConfig DATA_SOURCE_CONFIG = new DataSourceConfig
//            .Builder(DATA_SOURCE_RUL, DATA_USER, DATA_PASSWORD)
//            .build();
//
//    /**
//     * 策略配置
//     */
//    private static StrategyConfig.Builder strategyConfig() {
//        return new StrategyConfig.Builder().addInclude(createTableNames); // 设置需要生成的表名
//    }
//
//    /**
//     * 全局配置
//     */
//    private static GlobalConfig.Builder globalConfig() {
//        return new GlobalConfig.Builder().author("lin") // 设置作者
//                .enableSwagger() // 开启 swagger 模式
//                // TODO 使用的时候，这里修改为  projectPath
//                .outputDir("/Users/shaolin/workspace/test"); // 指定输出目录;
//    }
//
//    /**
//     * 包配置
//     */
//    private static PackageConfig.Builder packageConfig() {
//        return new PackageConfig.Builder();
//    }
//
//    /**
//     * 模板配置
//     */
//    private static TemplateConfig.Builder templateConfig() {
//        return new TemplateConfig.Builder().disable();
//    }
//
//    /**
//     * 注入配置
//     */
//    private static InjectionConfig.Builder injectionConfig() {
//        // 测试自定义输出文件之前注入操作，该操作再执行生成代码前 debug 查看
//        return new InjectionConfig.Builder().beforeOutputFile((tableInfo, objectMap) -> {
//            System.out.println("tableInfo: " + tableInfo.getEntityName() + " objectMap: " + objectMap.size());
//        });
//    }
//
//
//    public static void main(String[] args) {
//        Map<String, String> customFile = new HashMap<>();
//        customFile.put("a.java", "/gentemplate/adminController.java.ftl");
//        AutoGenerator generator = new AutoGenerator(DATA_SOURCE_CONFIG);
//        generator.strategy(strategyConfig().build());
//        generator.injection(injectionConfig().customFile(customFile).build());
//        generator.global(globalConfig().build());
//        generator.template(templateConfig().build());
//        generator.execute(new FreemarkerTemplateEngine());
//
//    }
//
//}
